$$ \newcommand{\floor}[1]{\left\lfloor{#1}\right\rfloor} \newcommand{\ceil}[1]{\left\lceil{#1}\right\rceil} \renewcommand{\mod}{\,\mathrm{mod}\,} \renewcommand{\div}{\,\mathrm{div}\,} \newcommand{\metar}{\,\mathrm{m}} \newcommand{\cm}{\,\mathrm{cm}} \newcommand{\dm}{\,\mathrm{dm}} \newcommand{\litar}{\,\mathrm{l}} \newcommand{\km}{\,\mathrm{km}} \newcommand{\s}{\,\mathrm{s}} \newcommand{\h}{\,\mathrm{h}} \newcommand{\minut}{\,\mathrm{min}} \newcommand{\kmh}{\,\mathrm{\frac{km}{h}}} \newcommand{\ms}{\,\mathrm{\frac{m}{s}}} \newcommand{\mss}{\,\mathrm{\frac{m}{s^2}}} \newcommand{\mmin}{\,\mathrm{\frac{m}{min}}} \newcommand{\smin}{\,\mathrm{\frac{s}{min}}} $$

Prijavi problem


Obeleži sve kategorije koje odgovaraju problemu

Još detalja - opišite nam problem


Uspešno ste prijavili problem!
Status problema i sve dodatne informacije možete pratiti klikom na link.
Nažalost nismo trenutno u mogućnosti da obradimo vaš zahtev.
Molimo vas da pokušate kasnije.

Замена итерације формулом

Један од важних савета за побољшање сложености алгоритама је тај да не терамо рачунар да врши дуготрајна израчунавања која се могу извршити и “пешке”, применом математике. Наиме, често се одређене вредности израчунавају применом итеративних поступака. На пример, збир елемената неког низа израчунавамо додавањем једног по једног елемента. То даје тражени резултат, али и одузима неко време. Постоје ситуације када су елементи који се обрађују правилни и када се коначан резултат може добити применом неке задате формуле, без примене итеративног поступка. На пример, ако знамо да треба сабрати првих \(n\) елемената низа \(1, 2, 3, \ldots, n\), нема потребе да примењујемо итеративни поступак сабирања чија је сложеност \(O(n)\), већ је довољно да у времену \(O(1)\) применимо Гаусову формулу на основу које знамо да је

\[1 + 2 + \ldots + n = \frac{n(n+1)}{2}\]

Још неке формуле се често могу употребити за смањење сложености (али и за саму анализу сложености), па ћемо их у наставку навести.

Аритметички и геометријски низ

Сличне формуле које су нам корисне су формуле за \(n\)-ти члан и збир првих \(n\) елемената аритметичког низа \(a_0\), \(a_1 = a_0 + d\), \(a_2 = a_0 + 2d\), \(\ldots\).

\[a_i = a_0 + id, \qquad \sum_{i=0}^{n} a_i = \frac{(n+1)(a_0 + a_n)}{2},\]

као и за \(n\)-ти члан и збир првих \(n\) елемената геометријског низа \(a_0\), \(a_1 = a_0\cdot q\), \(a_2 = a_0 \cdot q^2\), \(\ldots\)

\[a_i = a_0\cdot q^i, \qquad \sum_{i=0}^{n} a_i = a_0\frac{1-q^{n+1}}{1-q}.\]

Збирови степена

\[1^2 + 2^2 + \ldots + n^2 = \sum_{k=1}^n k^2 = \frac{n\cdot (n + \frac{1}{2}) \cdot (n+1)}{3}\]

\[1^3+2^3+\ldots + n^3 = \sum_{k=1}^n k^3 = \left(\frac{n(n+1)}{2}\right)^2.\]

Комбинаторика

  • Број начина да се из скупа од \(n\) различитих бројева извуку два броја \(a < b\) је \(\binom{n}{2} = \frac{n(n-1)}{2}\).
  • Број начина да се из скупа од \(n\) различитих бројева извуку три броја \(a < b < c\) је \(\binom{n}{3} = \frac{n(n-1)(n-2)}{3\cdot 2}\).